iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0

前言

前面對CSS應該有一些的基本了解跟認識,那接下來要講到的CSS Selectors 基本選擇器

(如果我們想要連結CSS檔案到HTML檔案的話,開新的檔案命名為Style.css存放在跟我們前幾天說的index.html同一個資料夾裡面,並且在index.html檔案內< head >標籤裡面,輸入link:css +enter即可喔~)

<head>
    <link rel="stylesheet" href="style.css" />
</head>

Part.1 先介紹的基本選擇器如下

  • Universal selector 全域選擇器
  • Element selector 元素選擇器
  • Class selector Class選擇器
  • ID selector ID選擇器
  • Grouping selector 群組選擇器

Universal selector 全域選擇器

以星號(asterisk)*來表示,代表選擇HTML文件的所有元素。

前面可以使用「*」米字號當作選擇器,來表示所有的HTML元素中都會套用接下來所設定的樣式,用這個方式來設定讓整個網站呈現共同的樣式,就像是決定整個房子統一想要什麼風格,舉例如果我們想要統一整個網頁的邊界樣式:


*{宣告;}
*{
	margin:10;
	padding:10;
	}

Element selector 元素選擇器

使用前幾天學到的HTML元素來當作選擇器,像是< h1 >、< p >標籤,可以在CSS裡面進行更改統一一致性的樣式。

p{
	color:blue;
	}
h1{
	color:red;
	}

既然前面已經有提到兩個選擇器,那這邊補充說明:

CSS裡面的Cascading階層式的意思是,當我們在相同特定度狀況下,寫在越下面的Style Sheet,越會覆蓋掉上方原本已經寫的Style Sheet。

如下圖h1會從原本設定要紅色,改成藍色,所以原本要求所有< h1 >元素的指令會被覆蓋掉,並不予理會。

h1{
	color:red;
	}
h1{
	color:blue;
	}

Class selector Class選擇器

還有一個選擇器是使用< class >,可以用自己命名在HTML裡面的元素,跟等等提到的id選擇器不同,class可以有很多個都設定同樣的名稱。

在class的前面加上「 . 」一個點,然後加上名稱{ 宣告 }。

這種選擇器顧名思義是要把HTML裡面想要一次變更的元素都使用< class >屬性,並且設定成相同的值當做名稱,這樣在CSS只要選擇這個class名稱當作選擇標的,即可更改HTML裡面,全部有使用class同樣名稱的一次進行樣式設定,格式如下:

.class名稱{宣告;}

一個標籤裡可以加入兩個< class >,直接在兩個中間裡面打一格空格,輸入想要加入的分類,這樣的方式可以讓分類變得更詳細而且簡化。

在html裡面先這樣註記< class >標籤,(要記得連結link CSS檔案在head裡面喔!)如同下面的程式碼:

<head>
  <link rel="stylesheet" href="style.css" />
</head>
<body>
    <h1 class="goldText">叫我第一名</p>
    <p class="blueText">再接再厲</p>
    <p class="goldText largeText">相信自己可以!</p>
 </body>

如果沒有加入CSS檔案的話,在網頁呈現上是如同下圖這樣。
https://ithelp.ithome.com.tw/upload/images/20220923/201514708lwKISvddC.jpg

那在CSS檔案裡面跟著下面這樣輸入,我們假定想讓< class >標籤裡

  • goldText呈現金色字體
  • blueText 呈現藍色字體
  • largeText呈現較大字體(3rem是指字體3倍大的意思)
.blueText {
  color: blue;
}
.goldText {
  color: gold;
}
.largeText {
  font-size: 3rem;
}

當我們把CSS檔案加入到head裡面時
https://ithelp.ithome.com.tw/upload/images/20220923/20151470VpOsb9p5vJ.jpg
https://ithelp.ithome.com.tw/upload/images/20220923/20151470hdOUo4pk3C.jpg
如果條件限制成要同時是< h1 >標籤,而且< class="goldText" >標籤的話,在CSS檔案打如下圖所示:

h1.goldText {
  color: gold;
}

我們把前面的註解掉,這樣在網頁上可以看出來只有同時是h1.goldText標籤的才會變色,另一個< p >標籤雖然< class>裡面也有goldText,但是因為沒有同時符合兩個條件,所以下圖的網頁上可以看到只有同時符合的才會變色,其他的都維持。
https://ithelp.ithome.com.tw/upload/images/20220923/201514708aFBAblRst.jpg

ID selector ID選擇器

則是在ID名稱前面加上「 # 」井字號,後面一樣{ 宣告; },格式如下:

#id名稱{宣告;}

使用< id >的特色在於,因為一個檔案只有一個< id >,不像是< class >標籤一樣,可以設定好幾個< class >都使用相同的名稱。

那我們今天假設,把第一行文字從< class=”goldText” >標籤更改成< id=”goldText” >

<head>
  <link rel="stylesheet" href="style.css" />
</head>
<body>
    <h1 id="goldText">叫我第一名</p>
    <p class="blueText">再接再厲</p>
    <p class="goldText largeText">相信自己可以!</p>
 </body>

下面的< goldText >因為是< id >標籤,所以前面的符號也從「 . 」更改成「 # 」

.blueText {
  color: blue;
}
#goldText {
  color: gold;
}
.largeText {
  font-size: 3rem;
}

可以看到只有第一行「叫我第一名」更改成金色,第三行雖然也有標籤裡也有< ”goldText” >,但因為不是< id >標籤,所以只有字體放大三倍並未變色。
https://ithelp.ithome.com.tw/upload/images/20220923/20151470841wX3HSg3.jpg

Grouping selector 群組選擇器

如果我們想要有好幾個標籤同時更改成同一個樣式的話,這時候就是使用grouping selector簡化程式碼的時候了!

假設我們想要同時把所有標題的標籤,也就是< h1 >標籤到< h6 >標籤都更改成同一個樣式,原本可能需要這樣打:

h1{color: chocolate;}
h2{color: chocolate;}
h3{color: chocolate;}
h4{color: chocolate;}
h5{color: chocolate;}
h6{color: chocolate;}

可以看得出來,後面設定color的樣式都是一樣設定成chocolate的顏色,只有前面的標籤不同而已,那其實可以有更快的方式來簡化程式碼。

h1,h2,h3,h4,h5,h6 {
  color: chocolate;
}

第8天挑戰完成

當初看到有這麼多種選擇器眼花撩亂還要嘗試理解,腦袋差點沒有打死結…

慢下來一個個研究後,就比較能知道為什麼有這麼多不同的分類,後面還有其他不同的選擇器呢!

明天繼續基本選擇器 Part 2!!


上一篇
Day 7 CSS 基本認識
下一篇
Day 9 CSS Selector part2
系列文
一趟30天網頁設計的學習冒險#explain like i‘m five 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言